////snippet-sourcedescription:[DeleteBucket.java demonstrates how to delete an existing bucket.]
////snippet-keyword:[Java]
////snippet-keyword:[Code Sample]
////snippet-keyword:[Amazon S3]
////snippet-keyword:[deleteObject]
////snippet-service:[s3]
////snippet-sourcetype:[full-example]
////snippet-sourcedate:[2017-05-25]
////snippet-sourceauthor:[soo-aws]
///*
//   Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
//
//   This file is licensed under the Apache License, Version 2.0 (the "License").
//   You may not use this file except in compliance with the License. A copy of
//   the License is located at
//
//    http://aws.amazon.com/apache2.0/
//
//   This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
//   CONDITIONS OF ANY KIND, either express or implied. See the License for the
//   specific language governing permissions and limitations under the License.
//*/
//package com.zkgengkun.support.util.s3;
//import com.amazonaws.AmazonServiceException;
//import com.amazonaws.services.s3.AmazonS3;
//import com.amazonaws.services.s3.AmazonS3ClientBuilder;
//import com.amazonaws.services.s3.model.ListVersionsRequest;
//import com.amazonaws.services.s3.model.ObjectListing;
//import com.amazonaws.services.s3.model.S3ObjectSummary;
//import com.amazonaws.services.s3.model.S3VersionSummary;
//import com.amazonaws.services.s3.model.VersionListing;
//import java.util.Iterator;
//
///**
// * Delete an Amazon S3 bucket.
// *
// * This code expects that you have AWS credentials set up per:
// * http://docs.aws.amazon.com/java-sdk/latest/developer-guide/setup-credentials.html
// *
// * ++ Warning ++ This code will actually delete the bucket that you specify, as
// *               well as any objects within it!
// */
//public class DeleteBucket
//{
//    public static void main(String[] args)
//    {
//        final String USAGE = "\n" +
//            "To run this example, supply the name of an S3 bucket\n" +
//            "\n" +
//            "Ex: DeleteBucket <bucketname>\n";
//
//        if (args.length < 1) {
//            System.out.println(USAGE);
//            System.exit(1);
//        }
//
//        String bucket_name = args[0];
//
//        System.out.println("Deleting S3 bucket: " + bucket_name);
//        final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
//
//        try {
//            System.out.println(" - removing objects from bucket");
//            ObjectListing object_listing = s3.listObjects(bucket_name);
//            while (true) {
//                for (Iterator<?> iterator =
//                        object_listing.getObjectSummaries().iterator();
//                        iterator.hasNext();) {
//                    S3ObjectSummary summary = (S3ObjectSummary)iterator.next();
//                    s3.deleteObject(bucket_name, summary.getKey());
//                }
//
//                // more object_listing to retrieve?
//                if (object_listing.isTruncated()) {
//                    object_listing = s3.listNextBatchOfObjects(object_listing);
//                } else {
//                    break;
//                }
//            };
//
//            System.out.println(" - removing versions from bucket");
//            VersionListing version_listing = s3.listVersions(
//                    new ListVersionsRequest().withBucketName(bucket_name));
//            while (true) {
//                for (Iterator<?> iterator =
//                        version_listing.getVersionSummaries().iterator();
//                        iterator.hasNext();) {
//                    S3VersionSummary vs = (S3VersionSummary)iterator.next();
//                    s3.deleteVersion(
//                            bucket_name, vs.getKey(), vs.getVersionId());
//                }
//
//                if (version_listing.isTruncated()) {
//                    version_listing = s3.listNextBatchOfVersions(
//                            version_listing);
//                } else {
//                    break;
//                }
//            }
//
//            System.out.println(" OK, bucket ready to delete!");
//            s3.deleteBucket(bucket_name);
//        } catch (AmazonServiceException e) {
//            System.err.println(e.getErrorMessage());
//            System.exit(1);
//        }
//        System.out.println("Done!");
//    }
//}
